//Vue全局配置
axios.defaults.baseURL = 'http://localhost:8080/'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios


//主站拦截器
//1.axios前置拦截器
axios.interceptors.request.use(config => {
    let uToken = localStorage.getItem("token");
    if (uToken) {
        config.headers['U-TOKEN'] = uToken;
    }
    return config;
}, error => {
    Promise.reject(error);
})

//2 使用axios后置拦截器，处理没有登录请求
axios.interceptors.response.use(result => {
    let data = result.data;
    if (!data.success && data.resultObj === "LoginDefault") {
        localStorage.removeItem("token")
        localStorage.removeItem("logininfo")
        router.push({path: '/login'})
    }
    return result;
}, error => {
    Promise.reject(error);
})

//自定义静态拦截器
let url = location.href
if (url.indexOf('login.html') === -1
    && url.indexOf('register.html') === -1
    && url.indexOf('index.html') === -1
    && url.indexOf('callback.html') === -1
    && url.indexOf('binder.html') === -1) {

    let user = localStorage.getItem("logininfo");
    if (!user) {
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        location.href = 'login.html';
    }
}

/**
 * 解析url获取参数对象
 * @param url
 * @returns {{}}
 */
function parseUrlParams2Obj(url) {// http://bugtracker.itsource.cn/callback.html?code=061IduGa1839qC02jlIa1NmHxX1IduGX&state=1
    //获取请求参数
    let paramStr = url.substring(url.indexOf("?") + 1);//code=021FdXFa14mYlA016OGa1L3R4X0FdXFO&state=1
    let paramStrs = paramStr.split("&");//[code=021FdXFa14mYlA016OGa1L3R4X0FdXFO,state=1]
    let paramObj = {};
    for (let i = 0; i < paramStrs.length; i++) {
        let paramName = paramStrs[i].split("=")[0];//code
        let paramValue = paramStrs[i].split("=")[1];//021FdXFa14mYlA016OGa1L3R4X0FdXFO
        paramObj[paramName] = paramValue;// 动态给对象设置属性和值
    }
    return paramObj;
}

